/*

    utils.cpp - implementation of utility functions
    Author Julio Agustin Barrera Mendoza
    Copyright (C) 2009 CINVESTAV-IPN.

    This program is free software; you can redistribute it and/or modify it 
    under the terms of the GNU General Public License as published by 
    the Free Software Foundation; either version 2 of the License, 
    or (at your option) any later version.

    This program is distributed in the hope that it will be useful, 
    but WITHOUT ANY WARRANTY; without even the implied warranty of 
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
    General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to 
    the Free Software Foundation, Inc., 59 Temple Place, 
    Suite 330, Boston, MA 02111-1307 USA

*/

#include "utils.h"

// ------------------------------------------------------------------
// FUNCTION trim
// ------------------------------------------------------------------

string trim(const string &str)
{
  size_t start = str.find_first_not_of(" \t\n\r");
  size_t end = str.find_last_not_of(" \t\n\r");

  if (start == string::npos)
    return "";

  return str.substr(start, end - start + 1);
}

// ------------------------------------------------------------------
// FUNCTION tokenize
// ------------------------------------------------------------------

vector<string> tokenize(const string &str)
{
  istringstream input(str);
  string token;
  vector<string> result;
  
  while (input.good())
    {
      input >> token;
      result.push_back(token);
    }

  return result;
}
